package com.xbongbong.pro.formdata.pojo.vo;

import com.xbongbong.paas.domain.entity.PaasFormDataEntity;
import com.xbongbong.paas.pojo.AssociatedBusinessAfterSavePojo;
import com.xbongbong.paas.toolbox.wrap.BaseVO;
import com.xbongbong.paas.toolbox.wrap.UserVO;
import com.xbongbong.pro.product.pojo.StockNotifyPojo;
import com.xbongbong.pro.product.pojo.vo.ChildProductVO;
import com.xbongbong.saas.domain.entity.WorkOrderEntity;
import com.xbongbong.saas.domain.entity.ext.PurchaseEntityExt;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.util.List;
import java.util.Map;

/**
 * @author 吴峰
 * @date 2021/02/03 15:16
 */
@Setter
@Getter
@ToString
public class UpdateVO extends BaseVO {

    private static final long serialVersionUID = 92482518248362845L;

    private Integer noApprovalRequired;

    private PaasFormDataEntity paasFormDataEntity;

    private Long dataId;

    private Integer updateLine;

    private UserVO userVO;

    /**
     * 退货退款专用
     */
    private AssociatedBusinessAfterSavePojo associatedBusinessAfterSavePojo;
    /**
     * 产品专用
     */
    private ChildProductVO childProductVO ;

    private PurchaseEntityExt purchaseEntityExt;


    private Long returnedPurchaseId;

    /**
     * 工单
     */
    private WorkOrderEntity workOrderEntity;

    /**
     * 产品
     */

    private String oldSpecificationStr;

    private String newSpecificationStr;

    public UpdateVO() {
    }

    public UpdateVO(Integer noApprovalRequired, Long dataId, UserVO userVO) {
        this.noApprovalRequired = noApprovalRequired;
        this.dataId = dataId;
        this.userVO = userVO;
    }

    public UpdateVO(Integer noApprovalRequired, PaasFormDataEntity paasFormDataEntity, Integer updateLine, Long dataId, UserVO userVO) {
        this.noApprovalRequired = noApprovalRequired;
        this.paasFormDataEntity = paasFormDataEntity;
        this.updateLine = updateLine;
        this.dataId = dataId;
        this.userVO = userVO;
    }


    public UpdateVO(Integer noApprovalRequired, WorkOrderEntity workOrderEntity, Integer updateLine, Long dataId, UserVO userVO) {
        this.noApprovalRequired = noApprovalRequired;
        this.workOrderEntity = workOrderEntity;
        this.updateLine = updateLine;
        this.dataId = dataId;
        this.userVO = userVO;
    }

    public UpdateVO(Integer noApprovalRequired, PaasFormDataEntity paasFormDataEntity, Integer updateLine, Long dataId, UserVO userVO, AssociatedBusinessAfterSavePojo associatedBusinessAfterSave) {
        this.noApprovalRequired = noApprovalRequired;
        this.paasFormDataEntity = paasFormDataEntity;
        this.dataId = dataId;
        this.updateLine = updateLine;
        this.userVO = userVO;
        this.associatedBusinessAfterSavePojo = associatedBusinessAfterSave;
    }


    public UpdateVO(Integer noApprovalRequired, PaasFormDataEntity paasFormDataEntity, Long dataId, Integer updateLine, UserVO userVO,
                    ChildProductVO childProductVO, String oldSpecificationStr, String newSpecificationStr) {
        this.noApprovalRequired = noApprovalRequired;
        this.paasFormDataEntity = paasFormDataEntity;
        this.dataId = dataId;
        this.updateLine = updateLine;
        this.userVO = userVO;
        this.childProductVO = childProductVO;
        this.oldSpecificationStr = oldSpecificationStr;
        this.newSpecificationStr = newSpecificationStr;
    }
}
